<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Features: GNOME Data Access 5 manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="GNOME Data Access 5 manual">
<link rel="up" href="part_begin.html" title="Part I. Getting started">
<link rel="prev" href="introduction.html" title="Introduction">
<link rel="next" href="architecture.html" title="Architecture">
<meta name="generator" content="GTK-Doc V1.32 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="part_begin.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="introduction.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="architecture.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
<a name="features"></a>Features</h2></div></div></div>
<p>
	This section presents the main features of the 5.2 version of Libgda.
      </p>
<p>
	Libgda is a low-level database abstraction layer built on top of each database C API. In terms of abstraction, 
	Libgda offers the following top features:
	</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>Open a connection to any database which type is supported using either a defined data source (defined per
	      user or system wide) or directly providing connection parameters. Several connections can be opened at the
	      same time.</p></li>
<li class="listitem"><p>Run any SQL query against an opened connection; furthermore any SQL query can be extended to define query parameters
	      using an easy to understand notation. If the SQL query was a SELECT statement, then an array of data is
	      returned (as a <code class="classname">GdaDataModel</code> object), and otherwise the number of rows affected
	      by the query is returned. For very large data sets, it is possible to specify that the returned array
	      of data should be based on a cursor to avoid loading it into memory .</p></li>
<li class="listitem"><p>Perform most of the data definition queries (including database creation) for the database types which support
	      it using a key/value mechanism.</p></li>
<li class="listitem"><p>Create, maintain and extend a view of the database's structure and meta data including the definitions of
	      the tables, constraints, data types, .... It is defined as closely as possible to the information schema SQL
	    standard (ISO/IEC 9075); see the <a class="link" href="gda-dict.html" title="Dictionary - metadata">Dictionary - metadata</a> section 
	      for more information.</p></li>
<li class="listitem"><p>Easy to extend data models for custom requirements</p></li>
<li class="listitem"><p>Support for binary data and for BLOBs in a transparent way, see the Gda value section</p></li>
<li class="listitem"><p>Support for detailed parameters in SQL queries, see the <a class="link" href="GdaSqlParser.html" title="GdaSqlParser">GdaSqlParser</a> object</p></li>
<li class="listitem"><p>Support for virtual connections, see the <a class="link" href="virtual_connection.html" title="Virtual connections">Virtual connections chapter</a></p></li>
<li class="listitem"><p>Partially thread-safe, see <a class="link" href="limitations.html#threads" title="Multi threaded environment">the threads limitation</a> for
	      more details</p></li>
</ul></div>
<p>
      </p>
<p>
	The database types which can be accessed at the time of writing are the following ones:
	</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>Access (.MDB files): uses the <a class="ulink" href="http://mdbtools.sourceforge.net/" target="_top">MDB Tools</a> library
	      to access the .MDB files, and is limited to getting information about tables and running very simple SELECT
	      queries;</p></li>
<li class="listitem"><p>Firebird: compiles, needs testing;</p></li>
<li class="listitem"><p>MySQL: fully functional;</p></li>
<li class="listitem"><p>Oracle: work is progress, usable;</p></li>
<li class="listitem"><p>PostgreSQL: fully functional;</p></li>
<li class="listitem"><p>SQLite: fully functional;</p></li>
<li class="listitem"><p>Oracle Berkeley DB: fully functional;</p></li>
<li class="listitem"><p>Oracle Berkeley DB with SQL: fully functional;</p></li>
<li class="listitem"><p>SQLCipher: fully functional;</p></li>
</ul></div>
<p>
      </p>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.32</div>
</body>
</html>